package com.jamie.jvm.thread;

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

/**
 * 循环屏障演示
 * @author jamie
 * @date 2021/3/9 22:46
 */
public class CyclicBarrierDemo {

    public static void main(String[] args) {
        CyclicBarrier cyclicBarrier = new CyclicBarrier(7, () -> {System.out.println("召唤神龙");});
        for(int i = 1; i <= 7; i++){
            final int tempInt = i;
            new Thread(() -> {
                System.out.println(Thread.currentThread().getName() + "\t 收集到第：" + tempInt + "龙珠");
                try{
                    cyclicBarrier.await();
                }catch(InterruptedException | BrokenBarrierException e){
                    e.printStackTrace();
                }
            }, "Thread-" + i).start();

        }
    }

}
